#define _CRT_SECURE_NO_WARNINGS

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int n = nums.size();
        int ret = n, sum = 0, flag = 0;

        int left = 0, right = left;
        for (; right < n; right++)
        {
            sum += nums[right];
            while (sum >= target)
            {
                flag = 1;
                int tmp = right - left + 1;
                ret = tmp > ret ? ret : tmp;

                sum -= nums[left++];
            }
        }
        // sum = nums[left];
        // while (right < n)
        // {
        //     if (sum < target)
        //     {
        //         if (right + 1 < n)
        //             sum += nums[++right];
        //         else
        //             break;
        //     }
        //     else
        //     {
        //         int temp = right - left + 1;
        //         ret = ret <= temp ? ret : temp;
        //         flag = 1;

        //         sum -= nums[left++];
        //     }
        // }
        return flag == 0 ? 0 : ret;
    }
};